package com.caption.mq.annotation;
import com.caption.mq.constant.MessageExtConstant;
import org.springframework.stereotype.Component;
import java.lang.annotation.*;

/**
 * @description: TODO
 * @author: 码农
 * @date: 2022-01-14 22:31:53
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Component
public @interface MqConsumer {
    /**
     *消费者组
     */
    String consumerGroup();

    /**
     * 主题
     * @return
     */
    String topic();

    /**
     * 广播模式消费
     * 集群模式消费
     * @return
     */
    String messageMode() default MessageExtConstant.MESSAGE_MODE_CLUSTERING;

    /**
     * 使用线程池并发消费
     * 单线程消费
     * @return
     */
    String consumeMode() default MessageExtConstant.CONSUME_MODE_CONCURRENTLY;

    /**
     * 标签 多个标签用 || 分隔
     * @return
     */
    String tag() default "*";

    /**
     * 重试次数
     * @return
     */
    int retryCount() default 3;

    /**
     * 消息重新策略 0-每隔5秒重试， 1-重试时间按 1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h 增加
     */
     int retryStrategy() default 0;

}
